<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>函数的name属性</title>
</head>
<body>
<script>
    // 函数的name属性：返回函数名
    /* 各大浏览器早已支持它，不过到ES6才被写入规则 */
    function foo(){} // foo.name = "foo"

    // 不过我们强大的ES6对它进行了一些修改：
    // 1. 对于函数表达式，ES5 和 ES6 有不同
    var f = function () {};

    f.name; //ES5  ""
    f.name; // ES6 "f"

    // 2.
    const bar = function foo(){}
    // ES5 和 ES6 ：
    bar.name; // "foo"

    // 3. 构造函数返回的函数实例
    (new FUnction).name // "anonymous"

    // 4. bind返回的函数：
    function foo(){}
    foo.bind({}).name // "bound foo";
    (function(){}.bind({}).name) // "bound"
</script>
</body>
</html>